const querystring = require("querystring");
function bodyParser (req, res, next) {
    // 定义中间件具体业务的逻辑
    // 定义变量，用来存储客户端发来的请求体数据
    let str = ''
    // 监听req对象的data事件，获取客户端发送到服务器的数据()————如果数据量比较大无法一次性发送完毕，客户端会把数据切割后分批发送到服务器
    req.on('data' , (chunk) => {
        // 拼接请求体数据，隐式转换为字符串
        str += chunk
        console.log(str)
    })
    // 监听req对象的end事件，当请求体接收数据完毕后会自动触发该事件
    req.on('end' , () => {
        // 打印完整的请求体数据
        console.log(str)
        // TODO: 把字符串格式的请求体解析成对象形式

    })
    // queryString模块解析请求体数据
    const qs = require('querystring')
    // 调用 qs.parse() 方法，把查询字符串解析为对象
    const body = qs.parse(str)
    console.log(body)

    // 将请求内容挂载到req.body中
    req.body = body
    // 别忘了next
    next()
}

module.exports = bodyParser